﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BestPrice.Common
{
    using Common;

#if NETFX_CORE
    [Windows.Foundation.Metadata.WebHostHidden]
#endif
    public class WebSite : BaseEntity
    {
        private int _ID;
        public int ID
        {
            get { return _ID; }
            set
            {
#if !NETFX_CORE
                _ID = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._ID, value); 
#endif
            }
        }

        private String _Name;
        public String Name
        {
            get { return _Name; }
            set
            {
#if !NETFX_CORE
                _Name = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._Name, value); 
#endif
            }
        }

        private String _Description;
        public String Description
        {
            get { return _Description; }
            set
            {
#if !NETFX_CORE
                _Description = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._Description, value); 
#endif
            }
        }

        private String _BaseUrl;
        public String BaseUrl
        {
            get { return _BaseUrl; }
            set
            {
#if !NETFX_CORE
                _BaseUrl = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._BaseUrl, value); 
#endif
            }
        }

        private String _SearchUrl;
        public String SearchUrl
        {
            get { return _SearchUrl; }
            set
            {
#if !NETFX_CORE
                _SearchUrl = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._SearchUrl, value); 
#endif
            }
        }

        private String _Parameter;
        public String Parameter
        {
            get { return _Parameter; }
            set
            {
#if !NETFX_CORE
                _Parameter = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._Parameter, value); 
#endif
            }
        }

        private String _ExtraParamater;
        public String ExtraParamater
        {
            get { return _ExtraParamater; }
            set
            {
#if !NETFX_CORE
                _ExtraParamater = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._ExtraParamater, value); 
#endif
            }
        }

        private String _Method;
        public String Method
        {
            get { return _Method; }
            set
            {
#if !NETFX_CORE
                _Method = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._Method, value); 
#endif
            }
        }

        private int _Ordinal;
        public int Ordinal
        {
            get { return _Ordinal; }
            set
            {
#if !NETFX_CORE
                _Ordinal = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._Ordinal, value); 
#endif
            }
        }

        private String _Status;
        public String Status
        {
            get { return _Status; }
            set
            {
#if !NETFX_CORE
                _Status = value;
#endif
#if NETFX_CORE
                this.SetProperty(ref this._Status, value); 
#endif
            }
        }

#if !NETFX_CORE
        public WebSiteKey Key
        {
            get
            {
                return new WebSiteKey(_ID);
            }
        }
#endif

#if NETFX_CORE
        private ObservableCollection<Product> _Items;
        public ObservableCollection<Product> Items
        {
            get
            {
                if (_Items == null)
                    _Items = new ObservableCollection<Product>();
                return this._Items;
            }
            set
            {
                this._Items = value;
            }
        }
#endif

        private Formatter _Formatter;
        public Formatter Formatter
        {
            get
            {
                return _Formatter;
            }
            set
            {
                _Formatter = value;
            }
        }
    }
}
